Editing tool for math equations

ABSTRACT

The present invention automatically replaces in an assessment response a string of mathematical symbols determined to be ambiguous with an unambiguous string of mathematical symbols. An editing tool may receive an assessment response from a client over a communication network. The assessment response may comprise i) a text with a mathematical meaning and ii) a string of mathematical symbols. The text and the string of mathematical symbols represent different non-overlapping characters in the assessment response. The editing tool may match the string of mathematical symbols with a known ambiguous string of mathematical symbols and determine the mathematical meaning in the text of the assessment response. The editing tool may replace the string of mathematical symbols determined to be ambiguous with an unambiguous string of mathematical symbols to generate an updated assessment response. The editing tool may transmit the updated assessment response to the client for display.

CROSS-REFERENCE TO RELATED APPLICATION(S)

This application claims the benefit of priority from U.S. ProvisionalApplication 62/651,495, filed under the same title on Apr. 2, 2018, theentire contents of which are incorporated herein by reference.

FIELD OF THE INVENTION

This disclosure relates to the field of systems and methods for anediting tool to edit and/or replace a string of mathematical symbols ina text field, such as a free form text entry field, determined to beambiguous with an unambiguous string of mathematical symbols.

SUMMARY OF THE INVENTION

The present invention provides systems and methods comprising one ormore server hardware computing devices or client hardware computingdevices, communicatively coupled to a network, and each comprising atleast one processor executing specific computer-executable instructionswithin a memory that, when executed, cause the system to automaticallyreplace a string of mathematical symbols in a text entry field, such as,as non-limiting examples, an assessment response or a text entry on asocial media website, determined to be ambiguous with an unambiguousstring of mathematical symbols.

In other embodiments the user may be given an option to accept or rejectupdates and in yet other embodiments the user may be given an option toselect an unambiguous string of mathematical symbols, from a pluralityof unambiguous strings of mathematical symbols, to replace an ambiguousstring of mathematical symbols entered by the user.

In yet another embodiment, the user may highlight an ambiguous string ofmathematical symbols and an unambiguous string of mathematical symbolsmay automatically replace the ambiguous string of mathematical symbols,the user may approve or reject the replacement of the ambiguous stringof mathematical symbols by the unambiguous string of mathematicalsymbols or the user may select an unambiguous string of mathematicalsymbols presented to the user, from a plurality of unambiguous stringsof mathematical symbols, to replace the ambiguous string of mathematicalsymbols entered by the user.

The editing tool may receive over a communication network from a clientan input signal comprising a sequence of one electronic character at atime of an assessment response. The assessment response may comprises i)a text that conveys a mathematical meaning and ii) a string ofmathematical symbols. The text and the string of mathematical symbolsmay represent different non-overlapping characters in the assessmentresponse.

The editing tool may compare in real-time the string of mathematicalsymbols entered by the user with a plurality of ambiguous strings ofmathematical symbols that are known to have two or more possiblemeanings. The string of mathematical symbols and ambiguous string ofmathematical symbols may be generalized by replacing numbers and/orvariables with wildcard characters to make it easier to match the userentered string of mathematical symbols with the known ambiguous stringsof mathematical symbols.

The editing tool may match the string of mathematical symbols entered bythe user with an ambiguous string of mathematical symbols in theplurality of ambiguous strings of mathematical symbols. The ambiguousstring of mathematical symbols are previously known to have a pluralityof possible meanings, such as a first possible meaning and a secondpossible meaning.

The editing tool may read a first plurality of determinative phrasesassociated with the first possible meaning, a second plurality ofdeterminative phrases associated with the second possible meaning from adatabase and so on for each additional possible meaning.

The editing tool may parse the text entered by the user that conveys themathematical meaning and match at least one of the first plurality ofdeterminative phrases to a part of the text or match at least one of thesecond plurality of determinative phrases to a part of the text. In someembodiments, the editing tool may also i) parse a course descriptionand/or syllabus for the class being taken by the user for matches in thefirst or second plurality of determinative phrases, ii) consider a levelof the class or a level of the user and/or iii) consider where (domain)the text is being entered. As an example, text entered in a social mediawebsite may use different rules or be weighted towards differentunambiguous strings of mathematical symbols when compared against textentered as an assessment response to a question as part of a test for aclass or course.

The editing tool may read from the database an unambiguous string ofmathematical symbols based on whether the at least one of the firstplurality of determinative phrases or the at least one of the secondplurality of determinative phrases matched a part of the text. Inpreferred embodiments, the unambiguous string of mathematical symbols isgeneralized, so the specific numbers and/or variables from the string ofmathematical symbols entered by the user may be inserted over anywildcard placeholders in the unambiguous string of mathematical symbols.The database may be organized, as non-limiting examples, as a look-uptable or a flat file.

The editing tool may replace in the assessment response the string ofmathematical symbols that has been determined to be ambiguous with theunambiguous string of mathematical symbols to thereby generate anupdated assessment response. The editing tool may transmit the updatedassessment response to the client for display.

In some embodiments, the user may be given an option to accept or rejectthe replacement of the unambiguous string of mathematical symbols to thestring of mathematical symbols entered by the user. In otherembodiments, a plurality of unambiguous strings of mathematical symbols,determined to be the most likely intended by the user, may be presentedfor selection by the user. In this case, the selected unambiguous stringof mathematical symbols will be used to replace the string ofmathematical symbols originally entered by the user.

The above features and advantages of the present invention will bebetter understood from the following detailed description taken inconjunction with the accompanying drawings.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 illustrates a system level block diagram for a non-limitingexample of a distributed computing environment that may be used inpracticing the invention.

FIG. 2 illustrates a system level block diagram for an illustrativecomputer system that may be used in practicing the invention.

FIG. 3 illustrates a system level block diagram of an online educationalinstitute with the components that may be used to practice theinvention.

FIGS. 4 and 6 illustrate specific examples of assessment responses thateach contain an ambiguous string of mathematical symbols that may havebeen entered and displayed on a client of the user.

FIGS. 5 and 7 illustrate specific examples regarding the correspondingassessment responses of FIGS. 4 and 6, where the editing tool hasreplaced the ambiguous string of mathematical symbols with anunambiguous string of mathematical symbols in the assessment responses.

FIG. 8 illustrates an example data store/database, greatly reduced toassist in explaining the invention, that stores a plurality of ambiguousstrings of mathematical symbols. The database also stores, for eachambiguous string of mathematical symbols a plurality of unambiguousstrings of mathematical symbols (possible meanings). The database alsostore, for each unambiguous string of mathematical symbols one or moredeterminative phrases.

FIGS. 9 and 10 illustrate a flowchart of a possible method forpracticing the invention.

DETAILED DESCRIPTION

The present inventions will now be discussed in detail with regard tothe attached drawing figures that were briefly described above. In thefollowing description, numerous specific details are set forthillustrating the Applicant's best mode for practicing the invention andenabling one of ordinary skill in the art to make and use the invention.It will be obvious, however, to one skilled in the art that the presentinvention may be practiced without many of these specific details. Inother instances, well-known machines, structures, and method steps havenot been described in particular detail in order to avoid unnecessarilyobscuring the present invention. Unless otherwise indicated, like partsand method steps are referred to with like reference numerals.

Network

FIG. 1 illustrates a non-limiting example distributed computingenvironment 100, which includes one or more computer server computingdevices 102, one or more client computing devices 106, and othercomponents that may implement certain embodiments and features describedherein. Other devices, such as specialized sensor devices, etc., mayinteract with client 106 and/or server 102. The server 102, client 106,or any other devices may be configured to implement a client-servermodel or any other distributed computing architecture.

Server 102, client 106, and any other disclosed devices may becommunicatively coupled via one or more communication networks 120.Communication network 120 may be any type of network known in the artsupporting data communications. As non-limiting examples, network 120may be a local area network (LAN; e.g., Ethernet, Token-Ring, etc.), awide-area network (e.g., the Internet), an infrared or wireless network,a public switched telephone networks (PSTNs), a virtual network, etc.Network 120 may use any available protocols, such as (e.g., transmissioncontrol protocol/Internet protocol (TCP/IP), systems networkarchitecture (SNA), Internet packet exchange (IPX), Secure Sockets Layer(SSL), Transport Layer Security (TLS), Hypertext Transfer Protocol(HTTP), Secure Hypertext Transfer Protocol (HTTPS), Institute ofElectrical and Electronics (IEEE) 802.11 protocol suite or otherwireless protocols, and the like.

Servers/Clients

The embodiments shown in FIGS. 1-2 are thus one example of a distributedcomputing system and is not intended to be limiting. The subsystems andcomponents within the server 102 and client devices 106 may beimplemented in hardware, firmware, software, or combinations thereof.Various different subsystems and/or components 104 may be implemented onserver 102. Users operating the client devices 106 may initiate one ormore client applications to use services provided by these subsystemsand components. Various different system configurations are possible indifferent distributed computing systems 100 and content distributionnetworks. Server 102 may be configured to run one or more serversoftware applications or services, for example, web-based or cloud-basedservices, to support content distribution and interaction with clientdevices 106. Users operating client devices 106 may in turn utilize oneor more client applications (e.g., virtual client applications) tointeract with server 102 to utilize the services provided by thesecomponents. Client devices 106 may be configured to receive and executeclient applications over one or more networks 120. Such clientapplications may be web browser based applications and/or standalonesoftware applications, such as mobile device applications. Clientdevices 106 may receive client applications from server 102 or fromother application providers (e.g., public or private applicationstores).

Security

As shown in FIG. 1, various security and integration components 108 maybe used to manage communications over network 120 (e.g., a file-basedintegration scheme or a service-based integration scheme). Security andintegration components 108 may implement various security features fordata transmission and storage, such as authenticating users orrestricting access to unknown or unauthorized users.

As non-limiting examples, these security components 108 may comprisededicated hardware, specialized networking components, and/or software(e.g., web servers, authentication servers, firewalls, routers,gateways, load balancers, etc.) within one or more data centers in oneor more physical location and/or operated by one or more entities,and/or may be operated within a cloud infrastructure.

In various implementations, security and integration components 108 maytransmit data between the various devices in the content distributionnetwork 100. Security and integration components 108 also may use securedata transmission protocols and/or encryption (e.g., File TransferProtocol (FTP), Secure File Transfer Protocol (SFTP), and/or Pretty GoodPrivacy (PGP) encryption) for data transfers, etc.).

In some embodiments, the security and integration components 108 mayimplement one or more web services (e.g., cross-domain and/orcross-platform web services) within the content distribution network100, and may be developed for enterprise use in accordance with variousweb service standards (e.g., the Web Service Interoperability (WS-I)guidelines). For example, some web services may provide secureconnections, authentication, and/or confidentiality throughout thenetwork using technologies such as SSL, TLS, HTTP, HTTPS, WS-Securitystandard (providing secure SOAP messages using XML encryption), etc. Inother examples, the security and integration components 108 may includespecialized hardware, network appliances, and the like (e.g.,hardware-accelerated SSL and HTTPS), possibly installed and configuredbetween servers 102 and other network components, for providing secureweb services, thereby allowing any external devices to communicatedirectly with the specialized hardware, network appliances, etc.

Data Stores (Databases)

Computing environment 100 also may include one or more data stores 110,possibly including and/or residing on one or more back-end servers 112,operating in one or more data centers in one or more physical locations,and communicating with one or more other devices within one or morenetworks 120. In some cases, one or more data stores 110 may reside on anon-transitory storage medium within the server 102. In certainembodiments, data stores 110 and back-end servers 112 may reside in astorage-area network (SAN). Access to the data stores may be limited ordenied based on the processes, user credentials, and/or devicesattempting to interact with the data store.

Computer System

With reference now to FIG. 2, a block diagram of an illustrativecomputer system is shown. The system 200 may correspond to any of thecomputing devices or servers of the network 100, or any other computingdevices described herein. In this example, computer system 200 includesprocessing units 204 that communicate with a number of peripheralsubsystems via a bus subsystem 202. These peripheral subsystems include,for example, a storage subsystem 210, an I/O subsystem 226, and acommunications subsystem 232.

Processors

One or more processing units 204 may be implemented as one or moreintegrated circuits (e.g., a conventional micro-processor ormicrocontroller), and controls the operation of computer system 200.These processors may include single core and/or multicore (e.g., quadcore, hexa-core, octo-core, ten-core, etc.) processors and processorcaches. These processors 204 may execute a variety of resident softwareprocesses embodied in program code, and may maintain multipleconcurrently executing programs or processes. Processor(s) 204 may alsoinclude one or more specialized processors, (e.g., digital signalprocessors (DSPs), outboard, graphics application-specific, and/or otherprocessors).

Buses

Bus subsystem 202 provides a mechanism for intended communicationbetween the various components and subsystems of computer system 200.Although bus subsystem 202 is shown schematically as a single bus,alternative embodiments of the bus subsystem may utilize multiple buses.Bus subsystem 202 may include a memory bus, memory controller,peripheral bus, and/or local bus using any of a variety of busarchitectures (e.g. Industry Standard Architecture (ISA), Micro ChannelArchitecture (MCA), Enhanced ISA (EISA), Video Electronics StandardsAssociation (VESA), and/or Peripheral Component Interconnect (PCI) bus,possibly implemented as a Mezzanine bus manufactured to the IEEE P1386.1standard).

Input/Output

I/O subsystem 226 may include device controllers 228 for one or moreuser interface input devices and/or user interface output devices,possibly integrated with the computer system 200 (e.g., integratedaudio/video systems, and/or touchscreen displays), or may be separateperipheral devices which are attachable/detachable from the computersystem 200. Input may include keyboard or mouse input, audio input(e.g., spoken commands), motion sensing, gesture recognition (e.g., eyegestures), etc.

Input

As non-limiting examples, input devices may include a keyboard, pointingdevices (e.g., mouse, trackball, and associated input), touchpads, touchscreens, scroll wheels, click wheels, dials, buttons, switches, keypad,audio input devices, voice command recognition systems, microphones,three dimensional (3D) mice, joysticks, pointing sticks, gamepads,graphic tablets, speakers, digital cameras, digital camcorders, portablemedia players, webcams, image scanners, fingerprint scanners, barcodereaders, 3D scanners, 3D printers, laser rangefinders, eye gaze trackingdevices, medical imaging input devices, MIDI keyboards, digital musicalinstruments, and the like.

Output

In general, use of the term “output device” is intended to include allpossible types of devices and mechanisms for outputting information fromcomputer system 200 to a user or other computer. For example, outputdevices may include one or more display subsystems and/or displaydevices that visually convey text, graphics and audio/video information(e.g., cathode ray tube (CRT) displays, flat-panel devices, liquidcrystal display (LCD) or plasma display devices, projection devices,touch screens, etc.), and/or non-visual displays such as audio outputdevices, etc. As non-limiting examples, output devices may include,indicator lights, monitors, printers, speakers, headphones, automotivenavigation systems, plotters, voice output devices, modems, etc.

Memory or Storage Media

Computer system 200 may comprise one or more storage subsystems 210,comprising hardware and software components used for storing data andprogram instructions, such as system memory 218 and computer-readablestorage media 216.

System memory 218 and/or computer-readable storage media 216 may storeprogram instructions that are loadable and executable on processor(s)204. For example, system memory 218 may load and execute an operatingsystem 224, program data 222, server applications, client applications220, Internet browsers, mid-tier applications, etc.

System memory 218 may further store data generated during execution ofthese instructions. System memory 218 may be stored in volatile memory(e.g., random access memory (RAM) 212, including static random accessmemory (SRAM) or dynamic random access memory (DRAM)). RAM 212 maycontain data and/or program modules that are immediately accessible toand/or operated and executed by processing units 204.

System memory 218 may also be stored in non-volatile storage drives 214(e.g., read-only memory (ROM), flash memory, etc.) For example, a basicinput/output system (BIOS), containing the basic routines that help totransfer information between elements within computer system 200 (e.g.,during start-up) may typically be stored in the non-volatile storagedrives 214.

Computer Readable Storage Media

Storage subsystem 210 also may include one or more tangiblecomputer-readable storage media 216 for storing the basic programmingand data constructs that provide the functionality of some embodiments.For example, storage subsystem 210 may include software, programs, codemodules, instructions, etc., that may be executed by a processor 204, inorder to provide the functionality described herein. Data generated fromthe executed software, programs, code, modules, or instructions may bestored within a data storage repository within storage subsystem 210.

Storage subsystem 210 may also include a computer-readable storage mediareader connected to computer-readable storage media 216.Computer-readable storage media 216 may contain program code, orportions of program code. Together and, optionally, in combination withsystem memory 218, computer-readable storage media 216 maycomprehensively represent remote, local, fixed, and/or removable storagedevices plus storage media for temporarily and/or more permanentlycontaining, storing, transmitting, and retrieving computer-readableinformation.

Computer-readable storage media 216 may include any appropriate mediaknown or used in the art, including storage media and communicationmedia, such as but not limited to, volatile and non-volatile, removableand non-removable media implemented in any method or technology forstorage and/or transmission of information. This can include tangiblecomputer-readable storage media such as RAM, ROM, electronicallyerasable programmable ROM (EEPROM), flash memory or other memorytechnology, CD-ROM, digital versatile disk (DVD), or other opticalstorage, magnetic cassettes, magnetic tape, magnetic disk storage orother magnetic storage devices, or other tangible computer readablemedia. This can also include nontangible computer-readable media, suchas data signals, data transmissions, or any other medium which can beused to transmit the desired information and which can be accessed bycomputer system 200.

By way of example, computer-readable storage media 216 may include ahard disk drive that reads from or writes to non-removable, nonvolatilemagnetic media, a magnetic disk drive that reads from or writes to aremovable, nonvolatile magnetic disk, and an optical disk drive thatreads from or writes to a removable, nonvolatile optical disk such as aCD ROM, DVD, and Blu-Ray® disk, or other optical media.Computer-readable storage media 216 may include, but is not limited to,Zip® drives, flash memory cards, universal serial bus (USB) flashdrives, secure digital (SD) cards, DVD disks, digital video tape, andthe like. Computer-readable storage media 216 may also include,solid-state drives (SSD) based on non-volatile memory such asflash-memory based SSDs, enterprise flash drives, solid state ROM, andthe like, SSDs based on volatile memory such as solid state RAM, dynamicRAM, static RAM, DRAM-based SSDs, magneto-resistive RAM (MRAM) SSDs, andhybrid SSDs that use a combination of DRAM and flash memory based SSDs.The disk drives and their associated computer-readable media may providenon-volatile storage of computer-readable instructions, data structures,program modules, and other data for computer system 200.

Communication Interface

Communications subsystem 232 may provide a communication interface fromcomputer system 200 and external computing devices via one or morecommunication networks, including local area networks (LANs), wide areanetworks (WANs) (e.g., the Internet), and various wirelesstelecommunications networks. As illustrated in FIG. 2, thecommunications subsystem 232 may include, for example, one or morenetwork interface controllers (NICs) 234, such as Ethernet cards,Asynchronous Transfer Mode NICs, Token Ring NICs, and the like, as wellas one or more wireless communications interfaces 236, such as wirelessnetwork interface controllers (WNICs), wireless network adapters, andthe like. Additionally and/or alternatively, the communicationssubsystem 232 may include one or more modems (telephone, satellite,cable, ISDN), synchronous or asynchronous digital subscriber line (DSL)units, Fire Wire® interfaces, USB® interfaces, and the like.Communications subsystem 236 also may include radio frequency (RF)transceiver components for accessing wireless voice and/or data networks(e.g., using cellular telephone technology, advanced data networktechnology, such as 3G, 4G or EDGE (enhanced data rates for globalevolution), WiFi (IEEE 802.11 family standards, or other mobilecommunication technologies, or any combination thereof), globalpositioning system (GPS) receiver components, and/or other components.

Input Output Streams Etc.

In some embodiments, communications subsystem 232 may also receive inputcommunication in the form of structured and/or unstructured data feeds,event streams, event updates, and the like, on behalf of one or moreusers who may use or access computer system 200. For example,communications subsystem 232 may be configured to receive data feeds inreal-time from users of social networks and/or other communicationservices, web feeds such as Rich Site Summary (RSS) feeds, and/orreal-time updates from one or more third party information sources(e.g., data aggregators). Additionally, communications subsystem 232 maybe configured to receive data in the form of continuous data streams,which may include event streams of real-time events and/or event updates(e.g., sensor data applications, financial tickers, network performancemeasuring tools, clickstream analysis tools, automobile trafficmonitoring, etc.). Communications subsystem 232 may output suchstructured and/or unstructured data feeds, event streams, event updates,and the like to one or more data stores that may be in communicationwith one or more streaming data source computers coupled to computersystem 200.

Connect Components to System

The various physical components of the communications subsystem 232 maybe detachable components coupled to the computer system 200 via acomputer network, a FireWire® bus, or the like, and/or may be physicallyintegrated onto a motherboard of the computer system 200. Communicationssubsystem 232 also may be implemented in whole or in part by software.

Other Variations

Due to the ever-changing nature of computers and networks, thedescription of computer system 200 depicted in the figure is intendedonly as a specific example. Many other configurations having more orfewer components than the system depicted in the figure are possible.For example, customized hardware might also be used and/or particularelements might be implemented in hardware, firmware, software, or acombination. Further, connection to other computing devices, such asnetwork input/output devices, may be employed. Based on the disclosureand teachings provided herein, a person of ordinary skill in the artwill appreciate other ways and/or methods to implement the variousembodiments.

The method and process of the present invention is herein defined to beperformed automatically by the hardware and software of the describedsystem. Unless the description specifically states that an action may beperformed by a user, all other actions are hereby defined to be doneautomatically, i.e., by computer hardware and software and without humanintervention.

With reference to FIG. 3, a block diagram of an example onlineeducational institute 300 is illustrated. The online educationalinstitute 300 may offer, register and administer a plurality of onlineeducational courses to a plurality of users. Each user may register andtake one or more classes with the online education institute.

As part of a class, such as while participating in real-time in anonline class, performing a project for the class or answering anassessment question as part of a test in the class, the user may enteran assessment response 400, 600. The user may enter the assessmentresponse 400, 600 by typing, sequentially one character at a time, on aclient 106. The client 106 may transmit, and the editing tool 310 mayreceive, a signal representing a sequence of characters, one characterat a time, of the assessment response 400, 600 from the client 106.

The editing tool 310 may be configured to automatically replace in anassessment response 400, 600 a string of mathematical symbols determinedto be ambiguous with an unambiguous string of mathematical symbols 810.The editing tool 310 may comprise a receiver 350 in communication withthe client 106. The receiver 350 may receive characters transmitted fromthe client 106 over a communication network 120. The editing tool 310may also comprise a transmitter 360 in communication with the client106. The transmitter 360 may transmit a display with an updatedassessment response 400, 600 to the client 106 over the communicationnetwork 120. The editing tool 310 may also comprise a database 110running on a hardware server.

In other embodiments the user may be given an option by the editing tool310 to accept or reject updates and in yet other embodiments the usermay be given an option by the editing tool 310 to select an unambiguousstring of mathematical symbols, from a plurality of unambiguous stringsof mathematical symbols, to replace an ambiguous string of mathematicalsymbols entered by the user.

In yet another embodiment, the user may highlight an ambiguous string ofmathematical symbols and an unambiguous string of mathematical symbolsmay automatically replace the ambiguous string of mathematical symbols,the user may approve or reject the replacement of the ambiguous stringof mathematical symbols by the unambiguous string of mathematicalsymbols or the user may select an unambiguous string of mathematicalsymbols presented to the user, from a plurality of unambiguous stringsof mathematical symbols, to replace the ambiguous string of mathematicalsymbols entered by the user.

The database 110 may store a plurality of strings of mathematicalsymbols that are known to be ambiguous (ambiguous strings ofmathematical symbols 800), a plurality of strings of mathematicalsymbols that are not ambiguous (unambiguous strings of mathematicalsymbols 810) and a plurality of determinative phrases 830 that whenfound in the text of an assessment response 400, 600 may be used todetermine a meaning out of a plurality of possible meanings 820 for theambiguous string of mathematical symbols.

In another embodiment, the database 110 may store a plurality ofambiguous strings of mathematical symbols 800. Each of the plurality ofambiguous strings of mathematical symbols 800 may be associated with aplurality of possible meanings 820 based on a math level of a userentering the assessment response 400, 600. Each of the plurality ofpossible meanings may be associated with one or more determinativephrases 830 and each of the one or more determinative phrases 830 may beassociated with an unambiguous string of mathematical symbols 820.

The editing tool 310 may also comprise a computer processor 204 thatcomprises hardware and software necessary for a compare function 320, aparse function 330 and a replace function 340, as further describedbelow, so that the computer processor 204 may compare known ambiguousstrings of mathematical symbols 800 to free-form entered text, parse thefree-form entered text for matches in the text with determinativephrases 830 and replace strings of mathematical symbols determined to beambiguous with unambiguous strings of mathematical symbols 820 based onthe matched determinative phrase(s) 830.

With reference to FIG. 9, the receiver 350, the transmitter 360, thedatabase 110 and the computer processor 204 may be configured to receiveover the communication network 120 from the client 106 an input signalcomprising a sequence of one electronic character at a time of anassessment response 400, 600. (Step 900) As a non-limiting example, theassessment response 400, 600 may be entered as a response to anassessment question asked as part of an online class.

An example assessment response 400, 600 is illustrated in FIG. 4. Theassessment response 400, 600 may comprise a text, possibly entered in afree-format style, i.e., entered sequentially one character at a time asdesired by the user with few or no restrictions on character entry, thatconveys a mathematical meaning, and a string of mathematical symbols.The text and the string of mathematical symbols represent differentnon-overlapping characters in the assessment response 400, 600.

As a non-limiting example, the assessment response 400, 600 in FIG. 4 is“[t]he solution requires squaring one third of the total so the equationis 1/3{circumflex over ( )}2.” This assessment response 400, 600comprises a non-overlapping text of “[t]he solution requires squaringone third of the total so the equation is” and a string of mathematicalsymbols of “1/3{circumflex over ( )}2.”

The editing tool 310, using a compare function 340, may compare inreal-time, i.e., for each character entered, the string of mathematicalsymbols with a plurality of ambiguous strings of mathematical symbols800, that are stored in the database 110, that are known to have two ormore possible meanings. (Step 910) It should be appreciated that foreach character entered, several strings of mathematical symbols may becompared to the plurality of ambiguous strings of mathematical symbols800. Thus, the comparing function 340, after receiving the lastcharacter of “2,” may compare the strings of “{circumflex over ( )}2,”“3{circumflex over ( )}2,” “/3{circumflex over ( )}2” and“1/3{circumflex over ( )}2” against the plurality of ambiguous stringsof mathematical symbols 800.

The editing tool 310, using a parsing function 330, may parse the textand attempt to match these strings of mathematical symbols with anambiguous string of mathematical symbols 800 in a plurality of ambiguousstrings of mathematical symbols 800. (Step 920) The ambiguous string ofmathematical symbols 800 has two or more meanings and thus may have atleast a first possible meaning and a second possible meaning. Continuingwith our example, as illustrated in FIG. 8, the string of mathematicalsymbols of “1/3{circumflex over ( )}2” may have a first meaning of(1/3)² and a second meaning of 1/(3²).

As part of the matching process, the string of mathematical symbols inthe assessment response 400, 600 is preferably generalized by, as anon-limiting example, replacing all of the numbers (regardless of thenumber of digits within the number) with a wildcard placeholder thatrepresents any number and a wildcard placeholder that represents anyvariable. In this example, the wildcard placeholder is illustrated as a“#” symbol. Thus, the string of mathematical symbols of “1/3{circumflexover ( )}2” in the assessment response 400, 600 may be generalized to“#/#{circumflex over ( )}#” as shown in FIG. 8 by replacing the numberswith the wildcard placeholder.

The editing tool 310 may read a first plurality of determinative phrases830 associated with the first possible meaning and a second plurality ofdeterminative phrases 830 associated with the second possible meaningfrom the database 110 for the ambiguous string of mathematical symbols800. (Step 930) Additional determinative phrases 830 may be read foreach additional possible meaning for the ambiguous string ofmathematical symbols 800. Thus, the determinative phrases 830 of “onedivided by three,” “1 divided by 3” and “one third” may be read for themeaning (1/3)² and the determinative phrases 830 of “three squared” and“3 squared” may be read for the meaning 1/(3²) from the database 110.The determinative phrases 830, if found in the text, may be used todetermine which of these meanings is the correct meaning for the stringof mathematical symbols.

With reference to FIG. 10, the editing tool 310 may parse the text thatconveys the mathematical meaning and attempt to match one or more of thedeterminative phrases 830 for each of the possible meanings of theambiguous string of mathematical symbols 800 to a part of the text.(Step 1000) Thus, in this running example the determinative phrases 830of “one divided by three,” “1 divided by 3,” “one third,” ‘threesquared” and “3 squared” are searched for in the text of “[t]he solutionrequires squaring one third of the total so the equation is” in theassessment response 400, 600.

The editing tool 310 may read from the database 110 an unambiguousstring of mathematical symbols 810 based on which one or moredeterminative phrases 830 were matched in the text. (Step 1010) In thisexample the determinative phrase 830 of “one third” is in the text ofthe assessment response 400, 600 and the database 110 may associate thisdeterminative phrase 830 with the unambiguous string of mathematicalsymbols 810 of “(1/3)².” It should be appreciated that the wildcardplaceholders may be replaced by the original number(s) and/or originalvariables in the string of mathematical symbols in creating theunambiguous string of mathematical symbols 810.

The editing tool 310 may replace in the assessment response 400, 600 thestring of mathematical symbols that has been determined to be ambiguouswith the unambiguous string of mathematical symbols 810 to therebygenerate an updated assessment response 400, 600. (Step 1020) In thisrunning example, the assessment response 400, 600 in FIG. 4 of “ . . .1/3{circumflex over ( )}2” is replaced with “ . . . (1/3)²” asillustrated in FIG. 5. The editing tool 310 may transmit the updatedassessment response 400, 600, as shown in FIG. 5, to the client 106 fordisplay to the user. (Step 1030).

Another example assessment response 400, 600 is illustrated in FIG. 6.The assessment response 400, 600 may comprise a text, possibly enteredin a free-format style, i.e., entered sequentially one character at atime as desired by the user with few or no restrictions on characterentry, that conveys a mathematical meaning, and a string of mathematicalsymbols. (Step 900) The text and the string of mathematical symbolsrepresent different non-overlapping characters in the assessmentresponse 400, 600.

As a non-limiting example, the assessment response 400, 600 in FIG. 6 is“[t]he solution requires using the function A with the input of (x+2) toproduce an output so the equation is A(x+2).” This assessment response400, 600 comprises a non-overlapping text of “[t]he solution requiresusing the function A with the input of and a string of mathematicalsymbols of “A(x+2).”

The editing tool 310, using the compare function 320, may compare inreal-time, i.e., for each character entered, the string of mathematicalsymbols with a plurality of ambiguous strings of mathematical symbols800, that are stored in the database 110, that are known to have two ormore possible meanings. (Step 910) It should be appreciated that foreach character entered, several strings of mathematical symbols may becompared to the plurality of ambiguous strings of mathematical symbols810. Thus, the comparing function 320, after receiving the lastcharacter of “),” may compare the strings of “2),” “+2),” “x+2),”“(x+2)” and “A(x+2)” against the plurality of ambiguous strings ofmathematical symbols 800.

The editing tool 310, using the parsing function 330, may parse the textand attempt to match these strings of mathematical symbols with anambiguous string of mathematical symbols 800 in a plurality of ambiguousstrings of mathematical symbols 800. (Step 920) The ambiguous string ofmathematical symbols 800 has two or more meanings and thus may have atleast a first possible meaning and a second possible meaning. Continuingwith our example, as illustrated in FIG. 8, the string of mathematicalsymbols of “A(x+2)” may have a first meaning of function A(x+2) and asecond meaning of just A(x+2).

As part of the matching process, the string of mathematical symbols inthe assessment response 400, 600 is preferably generalized by, as anon-limiting example, replacing all of the numbers (regardless of thenumber of digits within the number) with a wildcard placeholder thatrepresents any number and a wildcard placeholder that represents anyvariable. In this example, the wildcard placeholder is illustrated as a“#” symbol. Thus, the string of mathematical symbols of “A(x+2)” in theassessment response 400, 600 may be generalized to “#(#+#)” as shown inFIG. 8 by replacing the numbers and variables with the wildcardplaceholder.

If one or more determinative phrases 830 are found for two or moreunambiguous strings of mathematical symbols 810 or possible meanings,the determinative phrase 830 found closest to the string of mathematicalsymbols in the assessment response 400, 600 may be used to determine theintended meaning of the string of mathematical symbols.

The editing tool 310 may read a first plurality of determinative phrases830 associated with the first possible meaning and a second plurality ofdeterminative phrases 830 associated with the second possible meaningfrom the database 110 for the ambiguous string of mathematical symbols800. (Step 930) Additional determinative phrases 830 may be read foreach additional possible meaning for the ambiguous string ofmathematical symbols 800. Thus, the determinative phrases 830 of“function,” “inputs” and “outputs” may be read for the meaning functionA(x+2) and the determinative phrase 830 of “A times” may be read for themeaning A(x+2) from the database 110. The determinative phrases 830, iffound in the text, may be used to determine which of these meanings isthe correct meaning for the string of mathematical symbols.

The editing tool 310 may parse the text that conveys the mathematicalmeaning and attempt to match one or more of the determinative phrases830 for each of the possible meanings of the ambiguous string ofmathematical symbols 800 to a part of the text. (Step 1000) Thus, inthis running example the determinative phrases 830 of “function,”“input,” “output,” and “A times” are searched for in the text of “[t]hesolution requires using function A with the input of (X+2) to produce anoutput so the equation is A(x+2)” in the assessment response 400, 600.

The editing tool 310 may read from the database 110 an unambiguousstring of mathematical symbols 810 based on which one or moredeterminative phrases 830 were matched in the text. (Step 1010) In thisexample the determinative phrase 830 of “function,” “input” and “output”are in the text of the assessment response 400, 600 and the database 110may associate these determinative phrases 830 with the unambiguousstring of mathematical symbols 810 of “function A(x+2).” It should beappreciated that the wildcard placeholders may be replaced by theoriginal number(s) and/or original variable(s) in the string ofmathematical symbols in creating the unambiguous string of mathematicalsymbols 810.

The editing tool 310 may replace in the assessment response 400, 600 thestring of mathematical symbols that has been determined to be ambiguouswith the unambiguous string of mathematical symbols 810 to therebygenerate an updated assessment response 400, 600. (Step 1020) In thisrunning example, the assessment response 400, 600 in FIG. 6 of “ . . .A(x+2)” is replaced with “ . . . function A(x+2)” as illustrated in FIG.5. The editing tool 310 may transmit the updated assessment response400, 600, as shown in FIG. 5, to the client 106 for display to the user.(Step 1030)

In some embodiments the user may be consulted prior to replacing thestring of mathematical symbols with the unambiguous string ofmathematical symbols 810. Thus, a pop-up or question may be sent to theuser to approve of replacing the string of mathematical symbols, thathave been determined to be ambiguous, with the unambiguous string ofmathematical symbols 810. If the user approves, the string ofmathematical symbols may be replaced by the unambiguous string ofmathematical symbols 810 and the string of mathematical symbols are notreplaced with the unambiguous string of mathematical symbols 810 if theuser does not approve of the replacement.

In another embodiment, the editing tool 310 may display two or more ofthe unambiguous strings of mathematical symbols 810, after detecting astring of mathematical symbols is ambiguous, and allow the user toselect the unambiguous string of mathematical symbols 810 with themeaning intended by the user. In a preferred embodiment, the editingtool 310 may order and/or select the most likely intended unambiguousstrings of mathematical symbols 810, from a plurality of unambiguousstrings of mathematical symbols 810, for display and selection by theuser based on the determinative phrases 830 found in i) the text, coursedescription and/or syllabus and/or ii) the level of the course and/orthe user.

In another embodiment, the editing tool 310 may, in addition to usingthe assessment response 400, 600, parse and match the determinativephrases 830 with character strings in a syllabus or course material forthe class. Matching one or more determinative phrases 830 in thesyllabus or the course material may be used to select the possiblemeaning as the possible meaning associated with the matcheddeterminative phrase(s) 830.

In another embodiment, the editing tool 310 may look at the grade levelof the user or the grade level of the class to select between differentpossible meanings. Possible meanings that are typically taught to higherlevel users or in higher level classes may be assigned a higher leveland disregarded and/or not used in determining the unambiguous string ofmathematical symbols 810 for lower level classes.

Other embodiments and uses of the above inventions will be apparent tothose having ordinary skill in the art upon consideration of thespecification and practice of the invention disclosed herein. Thespecification and examples given should be considered exemplary only,and it is contemplated that the appended claims will cover any othersuch embodiments or modifications as fall within the true scope of theinvention.

The Abstract accompanying this specification is provided to enable theUnited States Patent and Trademark Office and the public generally todetermine quickly from a cursory inspection the nature and gist of thetechnical disclosure and in no way intended for defining, determining,or limiting the present invention or any of its embodiments.

The invention claimed is:
 1. An editing tool configured to automaticallyreplace in an assessment response a string of mathematical symbolsdetermined to be ambiguous with an unambiguous string of mathematicalsymbols, comprising: a receiver in communication with a client forreceiving characters transmitted from the client over a communicationnetwork; a transmitter in communication with the client for transmittinga display to the client over the communication network; a databaserunning on a hardware server; and a computer processor, wherein thereceiver, the transmitter, the database and the computer processor areconfigured to: receive over the communication network from the client aninput signal comprising a sequence of one electronic character at a timeof an assessment response, wherein the assessment response comprises: i)a text that conveys a mathematical meaning and ii) a string ofmathematical symbols, wherein the text and the string of mathematicalsymbols represent different non-overlapping characters in the assessmentresponse; compare in real-time the string of mathematical symbols with aplurality of ambiguous strings of mathematical symbols, that are storedin the database, that are known to have two or more possible meanings,match the string of mathematical symbols with an ambiguous string ofmathematical symbols in the plurality of ambiguous strings ofmathematical symbols, wherein the ambiguous string of mathematicalsymbols has a first possible meaning and a second possible meaning, reada first plurality of determinative phrases associated with the firstpossible meaning and a second plurality of determinative phrasesassociated with the second possible meaning from the database, parse thetext that conveys the mathematical meaning and match at least one of thefirst plurality of determinative phrases to a part of the text or matchat least one of the second plurality of determinative phrases to a partof the text, read from the database an unambiguous string ofmathematical symbols based on whether the at least one of the firstplurality of determinative phrases or the at least one of the secondplurality of determinative phrases matched a part of the text, replacein the assessment response the string of mathematical symbols that hasbeen determined to be ambiguous with the unambiguous string ofmathematical symbols to thereby generate an updated assessment response,and transmit the updated assessment response to the client for display.2. The editing tool of claim 1, wherein the database comprises theplurality of ambiguous strings of mathematical symbols, wherein each ofthe plurality of ambiguous strings of mathematical symbols is associatedwith a plurality of possible meanings, each of the plurality of possiblemeanings is associated with one or more determinative phrases and eachof the one or more determinative phrases is associated with anunambiguous string of mathematical symbols.
 3. The editing tool of claim1, wherein the database comprises the plurality of ambiguous strings ofmathematical symbols, wherein each of the plurality of ambiguous stringsof mathematical symbols is associated with a plurality of possiblemeanings based on a math level of a user entering the assessmentresponse, each of the plurality of possible meanings is associated withone or more determinative phrases and each of the one or moredeterminative phrases is associated with an unambiguous string ofmathematical symbols.
 4. The editing tool of claim 1, wherein theassessment response is an answer entered by a user in response to a mathquestion displayed on the client as part of an online educational class.5. The editing tool of claim 1, wherein a wild card character replaces anumber in the string of mathematical symbols before comparing the stringof mathematical symbols with the plurality of ambiguous strings ofmathematical symbols.
 6. The editing tool of claim 1, wherein thereceiver, the transmitter, the database and the computer processor arealso configured to: transmit the unambiguous string of mathematicalsymbols to the client for a user to approve; and upon a detection of anapproval from the client, replace the string of mathematical symbolswith the unambiguous string of mathematical symbols in the assessmentresponse.
 7. The editing tool of claim 1, wherein the received, thetransmitter, the database and the computer processor are also configuredto: transmit the unambiguous string of mathematical symbols to theclient for a user to approve; and upon a detection of a rejection fromthe client, the string of mathematical symbols is not replaced with theunambiguous string of mathematical symbols in the assessment response.8. A method for automatically replacing in an assessment response astring of mathematical symbols determined to be ambiguous with anunambiguous string of mathematical symbols, comprising the steps of:receiving by an editing tool over a communication network from a clientan input signal comprising a sequence of one electronic character at atime of an assessment response, wherein the assessment responsecomprises: i) a text that conveys a mathematical meaning and ii) astring of mathematical symbols, wherein the text and the string ofmathematical symbols represent different non-overlapping characters inthe assessment response; comparing by the editing tool in real-time thestring of mathematical symbols with a plurality of ambiguous strings ofmathematical symbols that are stored in a database that are known tohave two or more possible meanings; matching by the editing tool thestring of mathematical symbols with an ambiguous string of mathematicalsymbols in the plurality of ambiguous strings of mathematical symbols,wherein the ambiguous string of mathematical symbols is known to have afirst possible meaning and a second possible meaning; reading by theediting tool a first plurality of determinative phrases associated withthe first possible meaning and a second plurality of determinativephrases associated with the second possible meaning from the database;parsing by the editing tool the text that conveys the mathematicalmeaning and matching at least one of the first plurality ofdeterminative phrases to a part of the text or matching at least one ofthe second plurality of determinative phrases to a part of the text;reading by the editing tool from the database an unambiguous string ofmathematical symbols based on whether the at least one of the firstplurality of determinative phrases or the at least one of the secondplurality of determinative phrases matched a part of the text; replacingin the assessment response by the editing tool the string ofmathematical symbols that has been determined to be ambiguous with theunambiguous string of mathematical symbols to thereby generate anupdated assessment response; and transmitting by the editing tool theupdated assessment response to the client for display.
 9. The method ofclaim 8, wherein the database comprises the plurality of ambiguousstrings of mathematical symbols, wherein each of the plurality ofambiguous strings of mathematical symbols is associated with a pluralityof possible meanings, each of the plurality of possible meanings isassociated with one or more determinative phrases and each of the one ormore determinative phrases is associated with an unambiguous string ofmathematical symbols.
 10. The method of claim 8, wherein the databasecomprises the plurality of ambiguous strings of mathematical symbols,wherein each of the plurality of ambiguous strings of mathematicalsymbols is associated with a plurality of possible meanings based on amath level of a user entering the assessment response, each of theplurality of possible meanings is associated with one or moredeterminative phrases and each of the one or more determinative phrasesis associated with an unambiguous string of mathematical symbols. 11.The method of claim 8, wherein the assessment response is an answerentered by a user in response to a math question displayed on the clientas part of an online educational class.
 12. The method of claim 8,wherein a wild card character replaces a number in the string ofmathematical symbols before comparing the string of mathematical symbolswith the plurality of ambiguous strings of mathematical symbols.
 13. Themethod of claim 8, further comprising the steps of: transmitting theunambiguous string of mathematical symbols to the client for a user toapprove; and triggered by a detection of an approval from the client,replacing the string of mathematical symbols with the unambiguous stringof mathematical symbols in the assessment response.
 14. The method ofclaim 8, further comprising the steps of: transmitting the unambiguousstring of mathematical symbols to the client for a user to approve; andtriggered by detecting a rejection from the client, the string ofmathematical symbols is not replaced with the rejected unambiguousstring of mathematical symbols in the assessment response.
 15. A methodfor automatically replacing in an assessment response a string ofmathematical symbols determined to be ambiguous with an unambiguousstring of mathematical symbols, comprising the steps of: receiving by anediting tool an assessment response from a client over a communicationnetwork, wherein the assessment response comprises: i) a text comprisinga mathematical meaning and ii) a string of mathematical symbols, whereinthe text and the string of mathematical symbols represent differentnon-overlapping characters in the assessment response; matching by theediting tool the string of mathematical symbols with a known ambiguousstring of mathematical symbols; determining by the editing tool themathematical meaning in the text of the assessment response; replacingby the editing tool in the assessment response the string ofmathematical symbols determined to match the known ambiguous string ofmathematical symbols with an unambiguous string of mathematical symbolsto thereby generate an updated assessment response, wherein theunambiguous string of mathematical symbols has the mathematical meaningdetermined from the text of the assessment response; and transmitting bythe editing tool the updated assessment response to the client fordisplay.
 16. The method of claim 15, wherein a database comprises theplurality of ambiguous strings of mathematical symbols, wherein each ofthe plurality of ambiguous strings of mathematical symbols is associatedwith a plurality of possible meanings, each of the plurality of possiblemeanings is associated with one or more determinative phrases and eachof the one or more determinative phrases is associated with anunambiguous string of mathematical symbols.
 17. The method of claim 15,wherein the database comprises the plurality of ambiguous strings ofmathematical symbols, wherein each of the plurality of ambiguous stringsof mathematical symbols is associated with a plurality of possiblemeanings based on a math level of a user entering the assessmentresponse, each of the plurality of possible meanings is associated withone or more determinative phrases and each of the one or moredeterminative phrases is associated with an unambiguous string ofmathematical symbols.
 18. The method of claim 15, wherein the assessmentresponse is an answer entered by a user in response to a math questiondisplayed on the client as part of an online educational class.
 19. Themethod of claim 15, wherein a wild card character replaces a number inthe string of mathematical symbols before comparing the string ofmathematical symbols with the plurality of ambiguous strings ofmathematical symbols.
 20. The method of claim 15, further comprising thesteps of: transmitting the unambiguous string of mathematical symbols tothe client for a user to approve; and triggered by a detection of anapproval from the client, replacing the string of mathematical symbolswith the unambiguous string of mathematical symbols in the assessmentresponse.